package com.igeekhome.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SerComplainExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SerComplainExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andComplaintOrderIsNull() {
            addCriterion("Complaint_order is null");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderIsNotNull() {
            addCriterion("Complaint_order is not null");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderEqualTo(Integer value) {
            addCriterion("Complaint_order =", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderNotEqualTo(Integer value) {
            addCriterion("Complaint_order <>", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderGreaterThan(Integer value) {
            addCriterion("Complaint_order >", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderGreaterThanOrEqualTo(Integer value) {
            addCriterion("Complaint_order >=", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderLessThan(Integer value) {
            addCriterion("Complaint_order <", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderLessThanOrEqualTo(Integer value) {
            addCriterion("Complaint_order <=", value, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderIn(List<Integer> values) {
            addCriterion("Complaint_order in", values, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderNotIn(List<Integer> values) {
            addCriterion("Complaint_order not in", values, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderBetween(Integer value1, Integer value2) {
            addCriterion("Complaint_order between", value1, value2, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplaintOrderNotBetween(Integer value1, Integer value2) {
            addCriterion("Complaint_order not between", value1, value2, "complaintOrder");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdIsNull() {
            addCriterion("complain_staff_id is null");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdIsNotNull() {
            addCriterion("complain_staff_id is not null");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdEqualTo(Integer value) {
            addCriterion("complain_staff_id =", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdNotEqualTo(Integer value) {
            addCriterion("complain_staff_id <>", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdGreaterThan(Integer value) {
            addCriterion("complain_staff_id >", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("complain_staff_id >=", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdLessThan(Integer value) {
            addCriterion("complain_staff_id <", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdLessThanOrEqualTo(Integer value) {
            addCriterion("complain_staff_id <=", value, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdIn(List<Integer> values) {
            addCriterion("complain_staff_id in", values, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdNotIn(List<Integer> values) {
            addCriterion("complain_staff_id not in", values, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdBetween(Integer value1, Integer value2) {
            addCriterion("complain_staff_id between", value1, value2, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainStaffIdNotBetween(Integer value1, Integer value2) {
            addCriterion("complain_staff_id not between", value1, value2, "complainStaffId");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeIsNull() {
            addCriterion("Complaints_type is null");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeIsNotNull() {
            addCriterion("Complaints_type is not null");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeEqualTo(Integer value) {
            addCriterion("Complaints_type =", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeNotEqualTo(Integer value) {
            addCriterion("Complaints_type <>", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeGreaterThan(Integer value) {
            addCriterion("Complaints_type >", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("Complaints_type >=", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeLessThan(Integer value) {
            addCriterion("Complaints_type <", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeLessThanOrEqualTo(Integer value) {
            addCriterion("Complaints_type <=", value, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeIn(List<Integer> values) {
            addCriterion("Complaints_type in", values, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeNotIn(List<Integer> values) {
            addCriterion("Complaints_type not in", values, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeBetween(Integer value1, Integer value2) {
            addCriterion("Complaints_type between", value1, value2, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andComplaintsTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("Complaints_type not between", value1, value2, "complaintsType");
            return (Criteria) this;
        }

        public Criteria andPersonageIsNull() {
            addCriterion("personage is null");
            return (Criteria) this;
        }

        public Criteria andPersonageIsNotNull() {
            addCriterion("personage is not null");
            return (Criteria) this;
        }

        public Criteria andPersonageEqualTo(String value) {
            addCriterion("personage =", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageNotEqualTo(String value) {
            addCriterion("personage <>", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageGreaterThan(String value) {
            addCriterion("personage >", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageGreaterThanOrEqualTo(String value) {
            addCriterion("personage >=", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageLessThan(String value) {
            addCriterion("personage <", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageLessThanOrEqualTo(String value) {
            addCriterion("personage <=", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageLike(String value) {
            addCriterion("personage like", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageNotLike(String value) {
            addCriterion("personage not like", value, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageIn(List<String> values) {
            addCriterion("personage in", values, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageNotIn(List<String> values) {
            addCriterion("personage not in", values, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageBetween(String value1, String value2) {
            addCriterion("personage between", value1, value2, "personage");
            return (Criteria) this;
        }

        public Criteria andPersonageNotBetween(String value1, String value2) {
            addCriterion("personage not between", value1, value2, "personage");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneIsNull() {
            addCriterion("Complainant_telephone is null");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneIsNotNull() {
            addCriterion("Complainant_telephone is not null");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneEqualTo(String value) {
            addCriterion("Complainant_telephone =", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneNotEqualTo(String value) {
            addCriterion("Complainant_telephone <>", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneGreaterThan(String value) {
            addCriterion("Complainant_telephone >", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneGreaterThanOrEqualTo(String value) {
            addCriterion("Complainant_telephone >=", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneLessThan(String value) {
            addCriterion("Complainant_telephone <", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneLessThanOrEqualTo(String value) {
            addCriterion("Complainant_telephone <=", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneLike(String value) {
            addCriterion("Complainant_telephone like", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneNotLike(String value) {
            addCriterion("Complainant_telephone not like", value, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneIn(List<String> values) {
            addCriterion("Complainant_telephone in", values, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneNotIn(List<String> values) {
            addCriterion("Complainant_telephone not in", values, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneBetween(String value1, String value2) {
            addCriterion("Complainant_telephone between", value1, value2, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplainantTelephoneNotBetween(String value1, String value2) {
            addCriterion("Complainant_telephone not between", value1, value2, "complainantTelephone");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaIsNull() {
            addCriterion("Complaints_area is null");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaIsNotNull() {
            addCriterion("Complaints_area is not null");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaEqualTo(String value) {
            addCriterion("Complaints_area =", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaNotEqualTo(String value) {
            addCriterion("Complaints_area <>", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaGreaterThan(String value) {
            addCriterion("Complaints_area >", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaGreaterThanOrEqualTo(String value) {
            addCriterion("Complaints_area >=", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaLessThan(String value) {
            addCriterion("Complaints_area <", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaLessThanOrEqualTo(String value) {
            addCriterion("Complaints_area <=", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaLike(String value) {
            addCriterion("Complaints_area like", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaNotLike(String value) {
            addCriterion("Complaints_area not like", value, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaIn(List<String> values) {
            addCriterion("Complaints_area in", values, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaNotIn(List<String> values) {
            addCriterion("Complaints_area not in", values, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaBetween(String value1, String value2) {
            addCriterion("Complaints_area between", value1, value2, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andComplaintsAreaNotBetween(String value1, String value2) {
            addCriterion("Complaints_area not between", value1, value2, "complaintsArea");
            return (Criteria) this;
        }

        public Criteria andCompensationIsNull() {
            addCriterion("compensation is null");
            return (Criteria) this;
        }

        public Criteria andCompensationIsNotNull() {
            addCriterion("compensation is not null");
            return (Criteria) this;
        }

        public Criteria andCompensationEqualTo(Integer value) {
            addCriterion("compensation =", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationNotEqualTo(Integer value) {
            addCriterion("compensation <>", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationGreaterThan(Integer value) {
            addCriterion("compensation >", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationGreaterThanOrEqualTo(Integer value) {
            addCriterion("compensation >=", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationLessThan(Integer value) {
            addCriterion("compensation <", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationLessThanOrEqualTo(Integer value) {
            addCriterion("compensation <=", value, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationIn(List<Integer> values) {
            addCriterion("compensation in", values, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationNotIn(List<Integer> values) {
            addCriterion("compensation not in", values, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationBetween(Integer value1, Integer value2) {
            addCriterion("compensation between", value1, value2, "compensation");
            return (Criteria) this;
        }

        public Criteria andCompensationNotBetween(Integer value1, Integer value2) {
            addCriterion("compensation not between", value1, value2, "compensation");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdIsNull() {
            addCriterion("Complained_staff_id is null");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdIsNotNull() {
            addCriterion("Complained_staff_id is not null");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdEqualTo(Integer value) {
            addCriterion("Complained_staff_id =", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdNotEqualTo(Integer value) {
            addCriterion("Complained_staff_id <>", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdGreaterThan(Integer value) {
            addCriterion("Complained_staff_id >", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("Complained_staff_id >=", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdLessThan(Integer value) {
            addCriterion("Complained_staff_id <", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdLessThanOrEqualTo(Integer value) {
            addCriterion("Complained_staff_id <=", value, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdIn(List<Integer> values) {
            addCriterion("Complained_staff_id in", values, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdNotIn(List<Integer> values) {
            addCriterion("Complained_staff_id not in", values, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdBetween(Integer value1, Integer value2) {
            addCriterion("Complained_staff_id between", value1, value2, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andComplainedStaffIdNotBetween(Integer value1, Integer value2) {
            addCriterion("Complained_staff_id not between", value1, value2, "complainedStaffId");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesIsNull() {
            addCriterion("processed_times is null");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesIsNotNull() {
            addCriterion("processed_times is not null");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesEqualTo(Integer value) {
            addCriterion("processed_times =", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesNotEqualTo(Integer value) {
            addCriterion("processed_times <>", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesGreaterThan(Integer value) {
            addCriterion("processed_times >", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesGreaterThanOrEqualTo(Integer value) {
            addCriterion("processed_times >=", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesLessThan(Integer value) {
            addCriterion("processed_times <", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesLessThanOrEqualTo(Integer value) {
            addCriterion("processed_times <=", value, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesIn(List<Integer> values) {
            addCriterion("processed_times in", values, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesNotIn(List<Integer> values) {
            addCriterion("processed_times not in", values, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesBetween(Integer value1, Integer value2) {
            addCriterion("processed_times between", value1, value2, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andProcessedTimesNotBetween(Integer value1, Integer value2) {
            addCriterion("processed_times not between", value1, value2, "processedTimes");
            return (Criteria) this;
        }

        public Criteria andDealingstatusIsNull() {
            addCriterion("dealingStatus is null");
            return (Criteria) this;
        }

        public Criteria andDealingstatusIsNotNull() {
            addCriterion("dealingStatus is not null");
            return (Criteria) this;
        }

        public Criteria andDealingstatusEqualTo(Integer value) {
            addCriterion("dealingStatus =", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusNotEqualTo(Integer value) {
            addCriterion("dealingStatus <>", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusGreaterThan(Integer value) {
            addCriterion("dealingStatus >", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("dealingStatus >=", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusLessThan(Integer value) {
            addCriterion("dealingStatus <", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusLessThanOrEqualTo(Integer value) {
            addCriterion("dealingStatus <=", value, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusIn(List<Integer> values) {
            addCriterion("dealingStatus in", values, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusNotIn(List<Integer> values) {
            addCriterion("dealingStatus not in", values, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusBetween(Integer value1, Integer value2) {
            addCriterion("dealingStatus between", value1, value2, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andDealingstatusNotBetween(Integer value1, Integer value2) {
            addCriterion("dealingStatus not between", value1, value2, "dealingstatus");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeIsNull() {
            addCriterion("Complaints_time is null");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeIsNotNull() {
            addCriterion("Complaints_time is not null");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeEqualTo(Date value) {
            addCriterion("Complaints_time =", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeNotEqualTo(Date value) {
            addCriterion("Complaints_time <>", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeGreaterThan(Date value) {
            addCriterion("Complaints_time >", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("Complaints_time >=", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeLessThan(Date value) {
            addCriterion("Complaints_time <", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeLessThanOrEqualTo(Date value) {
            addCriterion("Complaints_time <=", value, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeIn(List<Date> values) {
            addCriterion("Complaints_time in", values, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeNotIn(List<Date> values) {
            addCriterion("Complaints_time not in", values, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeBetween(Date value1, Date value2) {
            addCriterion("Complaints_time between", value1, value2, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andComplaintsTimeNotBetween(Date value1, Date value2) {
            addCriterion("Complaints_time not between", value1, value2, "complaintsTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}